package com.anyou.mall.fin.service;

import java.util.List;

import com.anyou.common.core.domain.ApiResult;
import com.anyou.mall.fin.domain.Bond;
import com.anyou.mall.fin.param.DisableParam;
import com.anyou.mall.fin.vo.AllBondVo;
import com.anyou.mall.fin.vo.BondVo;
import com.anyou.mall.platform.vo.BondVO;

/**
 * 保证金管理Service接口
 *
 * @author gaochaohao
 * @date 2022-04-19
 */
public interface IBondService
{
    /**
     * 查询保证金管理
     *
     * @param bondId 保证金管理主键
     * @return 保证金管理
     */
    public Bond selectBondByBondId(Long bondId);

    /**
     * 查询保证金管理列表
     *
     * @param bond 保证金管理
     * @return 保证金管理集合
     */
    public List<Bond> selectBondList(Bond bond);

    /**
     * 新增保证金管理
     *
     * @param bond 保证金管理
     * @return 结果
     */
    public int insertBond(Bond bond);

    /**
     * 修改保证金管理
     *
     * @param bond 保证金管理
     * @return 结果
     */
    public int updateBond(Bond bond);

    /**
     * 批量删除保证金管理
     *
     * @param bondIds 需要删除的保证金管理主键集合
     * @return 结果
     */
    public int deleteBondByBondIds(Long[] bondIds);

    /**
     * 删除保证金管理信息
     *
     * @param bondId 保证金管理主键
     * @return 结果
     */
    public int deleteBondByBondId(Long bondId);

    /**
     * 启用禁用接口
     * @param disableParam
     * @return
     */
    ApiResult disable(DisableParam disableParam);

    /**
     * 获取保证金总额
     * @return
     */
    ApiResult<AllBondVo> allBond();

    /**
     * 查询合伙人列表
     * @param bond
     * @return
     */
    List<Bond> selectPartnerBondList(Bond bond);

    /**
     * 查询司机列表
     * @param bond
     * @return
     */
    List<Bond> selectDriverBondList(Bond bond);
}
